package org.common.utils;

import org.common.redis.RedisService;

import java.util.UUID;

/**
 * 生成Id相关工具
 */
public class GenIdUtils {

    /**
     * 生成ConnectId
     */
    public static long genConnectId() {
        // 先只用uuid的64位来做connectId，只要不超过64位理论上不会重复
        return UUID.randomUUID().getLeastSignificantBits();
    }

    /**
     * 生成账号Id
     */
    public static long genAccountId() {
        // 玩家的账号Id从1000000开始, 1000000之前的id做预留可插机器人之类的
        long baseAccountId = 1000000L;
        RedisService redisService = SpringUtils.getBean(RedisService.class);
        return baseAccountId + redisService.increase("genAccountId");
    }

    /**
     * 生成角色Id
     */
    public static long genRoleId() {
        // 角色的账号Id从1000000开始
        long baseRoleId = 1000000L;
        RedisService redisService = SpringUtils.getBean(RedisService.class);
        return baseRoleId + redisService.increase("genRoleId");
    }

}
